server {

    listen 80;
    server_name localhost;
    root /twake-core/web;

    add_header Strict-Transport-Security "max-age=31536000";

    location / {
        gzip on;
        gzip_disable "msie6";

        gzip_comp_level 6;
        gzip_min_length 1100;
        gzip_buffers 16 8k;
        gzip_proxied any;
        gzip_types
            text/plain
            text/css
            text/js
            text/xml
            text/javascript
            application/javascript
            application/x-javascript
            application/json
            application/xml
            application/rss+xml
            image/svg+xml;
        alias /twake-react/build/;
        try_files $uri /index.html;
    }

    location /socketcluster/ {
        proxy_pass http://websockets:8080/socketcluster/;
        # this magic is needed for WebSocket
        proxy_http_version  1.1;
        proxy_set_header    Upgrade $http_upgrade;
        proxy_set_header    Connection "upgrade";
        proxy_set_header    Host $http_host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
    }

    location ~ ^/(ajax|api|administration|upload|bundle|medias).* {
        # try to serve file directly, fallback to rewrite
        try_files $uri @rewriteapp;
    }

    location @rewriteapp {
        # rewrite all to app.php
        rewrite ^(.*)$ /app.php/$1 last;
    }

    location ~ /.well-known {
        allow all;
    }

    location ~ ^/(app|app_dev|config|dev\/.*)\.php(/|$) {
        fastcgi_pass php-upstream;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }

    location ~ /.well-known {
        allow all;
    }

    error_log /var/log/nginx/twakeapp_dev_error.log;
    access_log /var/log/nginx/twakeapp_dev_access.log;

}
